package com.yyh.javase1;

import java.util.Arrays;

/*已知一个字符串String str = "1、 hello 2. world
3. java 4.String 5. haha 6、HELLO";
	要求统计出现次数最多的字母及其出现的次数。不区分大小写。
*/
public class Test6 {
    public static void main(String[] args) {
        //定义字符串
        String str = "1、 hello 2. world 3. java 4.String 5. haha 6、HELLO";
        //将字符串转为小写
        str = str.toLowerCase();
        //去掉字符串中的数字和符号
        str = str.replaceAll("[0-9\\pP]", "");
        System.out.println(str);
        //将去掉字符串中的数字和符号的字符串去掉空格
        str = str.replaceAll("\\s", "");
        System.out.println(str);
        //将去掉字符串中的数字和符号的字符串转为字符数组
        char[] chs = str.toCharArray();
        System.out.println(Arrays.toString(chs));
        //创建数组保存每个字符出现的次数
        int[] counts = new int[26];
        for(int i = 0; i < chs.length; i++){
            counts[chs[i] - 'a']++;
        }
        //找出最大值
        int max = counts[0];
        for(int i = 1; i < counts.length; i++){
            if(counts[i] > max){
                max = counts[i];
            }
        }
        //打印最大值和字母
        for(int i = 0; i < counts.length; i++){
            if(counts[i] == max){
                System.out.println((char)(i + 'a') + "出现的次数为：" + max);
            }
        }

    }
}
